package com.itheima.day09;

import java.util.ArrayList;

/*
       需求：定义一个方法，方法接收一个集合对象（泛型为Student）
           方法内部将年龄低于18的学生对象找出
           并存入新集合对象，方法返回新集合。

       思路：
           1. 定义方法，方法的形参定义为ArrayList<Student> list
           2. 方法内部定义新集合，准备存储筛选出的学生对象 ArrayList<Student> newList
           3. 遍历原集合，获取每一个学生对象
           4. 通过学生对象调用getAge方法获取年龄，并判断年龄是否低于18
           5. 将年龄低于18的学生对象存入新集合
           6. 返回新集合
           7. main方法中测试该方法
    */
public class TestClassCase07 {

    public static void main(String[] args) {
        // 7. main方法中测试该方法
        Student s1 = new Student("长大", 16);
        Student s2 = new Student("知道", 18);
        Student s3 = new Student("转换", 11);

        ArrayList<Student> list = new ArrayList<>();

        list.add(s1);
        list.add(s2);
        list.add(s3);

        //8.接收方法返回的值
        ArrayList<Student> newList = checkAge(list);

        for (int i = 0; i < newList.size(); i++) {
            Student st = newList.get(i);
            System.out.println(st.getName() + "----" + st.getAge());
        }

    }


    // 1. 定义方法，方法的形参定义为ArrayList<Student> list
    public static ArrayList<Student> checkAge(ArrayList<Student> list) {

        // 2. 方法内部定义新集合，准备存储筛选出的学生对象 ArrayList<Student> newList
        ArrayList<Student> newList = new ArrayList<>();

        // 3. 遍历原集合，获取每一个学生对象
        for (int i = 0; i < list.size(); i++) {
            //4. 通过学生对象调用getAge方法获取年龄，并判断年龄是否低于18
            Student st = list.get(i);
            if (st.getAge() < 18) {
                //5. 将年龄低于18的学生对象存入新集合
                newList.add(st);
            }

        }

        // 6. 返回新集合
        return newList;

    }
}
